{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 189,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import mpl_toolkits.axisartist as axisartist"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 逻辑与数据\n",
    "samples_and = np.array([\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 0],\n",
    "    [0, 1, 0],\n",
    "    [1, 1, 1],\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 逻辑或数据\n",
    "samples_or = np.array([\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 1],\n",
    "    [0, 1, 1],\n",
    "    [1, 1, 1],\n",
    "])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "metadata": {},
   "outputs": [],
   "source": [
    "#逻辑异或数据\n",
    "samples_xor = np.array([\n",
    "    [0, 0, 0],\n",
    "    [1, 0, 1],\n",
    "    [0, 1, 1],\n",
    "    [1, 1, 0],\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {},
   "outputs": [],
   "source": [
    "def addHyperPlane(samples, w, b):\n",
    "\n",
    "    all_x = samples[:,:2]   \n",
    "    all_y = samples[:,2]   \n",
    "    fig = plt.figure()\n",
    "    #使用axisartist.Subplot方法创建一个绘图区对象ax \n",
    "    ax = axisartist.Subplot(fig, 111)\n",
    "    ax.axis[:].set_visible(False)\n",
    "    ax.axis[\"x1\"] = ax.new_floating_axis(0,0)\n",
    "    ax.axis[\"x1\"].set_axisline_style(\"->\", size = 0.5)\n",
    "    ax.axis[\"x1\"].set_axis_direction(\"top\")\n",
    "    ax.axis[\"x2\"] = ax.new_floating_axis(1,0)\n",
    "    ax.axis[\"x2\"].set_axisline_style(\"->\", size = 0.5)\n",
    "    ax.axis[\"x2\"].set_axis_direction(\"right\")\n",
    "    fig.add_axes(ax)\n",
    "        \n",
    "    # 计算分界线斜率与截距\n",
    "    k = -w[0] / w[1]\n",
    "   # print('斜率 k=', k)\n",
    "   # print('截距 b=', b)\n",
    "    #print('分割线函数：y = ', k,'x +(', b, ')')\n",
    "    xdata = np.linspace(-1, 1)\n",
    "    for i in range(len(all_y)):\n",
    "        if all_y[i] == 0 :\n",
    "            plt.plot(all_x[i,0], all_x[i,1], 'ro')\n",
    "        elif all_y[i] == 1 :\n",
    "            plt.plot(all_x[i,0], all_x[i,1], 'go')\n",
    "    #将绘图区对象添加到画布中\n",
    "    plt.plot(xdata,xdata*k+b,'b')\n",
    "    print('b', b)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "metadata": {},
   "outputs": [],
   "source": [
    "def perceptron(samples, hasJpg):\n",
    "    w = np.array([1, 2])\n",
    "    b = 0\n",
    "    a = 1\n",
    "    base = 40\n",
    "    count = 0\n",
    "\n",
    "    \n",
    "    for i in range(10):\n",
    "        for j in range(4):\n",
    "            #分离出x\n",
    "            x = np.array(samples[j][:2])\n",
    "            #计算y\n",
    "            y = 1 if np.dot(w, x) + b > 0 else 0\n",
    "            #分离出原始结果d\n",
    "            d = np.array(samples[j][2])\n",
    "            #print(\"y: \", y, \"d: \", d)\n",
    "            delta_b = a*(d-y)\n",
    "            delta_w = a*(d-y)*x\n",
    "            #print(\"delta_b: \", delta_b, \"delta_w: \", delta_w)\n",
    "            print('epoch {} sample {}  [w1={} w2={} b={} y={} delta_w1={} delta_w2={} delta_b={}]'.format(\n",
    "                i, j, w[0], w[1], b, y, delta_w[0], delta_w[1], delta_b\n",
    "            ))\n",
    "            if delta_b == 0: \n",
    "                count += 1\n",
    "            w = w + delta_w\n",
    "            b = b + delta_b\n",
    "            if hasJpg == True: \n",
    "                addHyperPlane(samples, w, b)\n",
    " \n",
    "    print('Accuracy: ', count / base)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 与运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 209,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logical and\n",
      "epoch 0 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 0 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=-1 delta_w2=0 delta_b=-1]\n",
      "epoch 0 sample 2  [w1=0 w2=2 b=-1 y=1 delta_w1=0 delta_w2=-1 delta_b=-1]\n",
      "epoch 0 sample 3  [w1=0 w2=1 b=-2 y=0 delta_w1=1 delta_w2=1 delta_b=1]\n",
      "epoch 1 sample 0  [w1=1 w2=2 b=-1 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 1  [w1=1 w2=2 b=-1 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 2  [w1=1 w2=2 b=-1 y=1 delta_w1=0 delta_w2=-1 delta_b=-1]\n",
      "epoch 1 sample 3  [w1=1 w2=1 b=-2 y=0 delta_w1=1 delta_w2=1 delta_b=1]\n",
      "epoch 2 sample 0  [w1=2 w2=2 b=-1 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 2 sample 1  [w1=2 w2=2 b=-1 y=1 delta_w1=-1 delta_w2=0 delta_b=-1]\n",
      "epoch 2 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 2 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 0  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 1  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 0  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 1  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 0  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 1  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 0  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 1  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 0  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 1  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 0  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 1  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 0  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 1  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 2  [w1=1 w2=2 b=-2 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 3  [w1=1 w2=2 b=-2 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "Accuracy:  0.85\n"
     ]
    }
   ],
   "source": [
    "if __name__ == '__main__':\n",
    "    print('logical and')\n",
    "    #perceptron(samples_and, True)\n",
    "    perceptron(samples_and, False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 或运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logical or\n",
      "epoch 0 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 0 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 0 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 0 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 2 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 2 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 2 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 2 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 5 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 6 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 7 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 8 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 9 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "Accuracy:  1.0\n"
     ]
    }
   ],
   "source": [
    "print('logical or')\n",
    "#perceptron(samples_or, True)\n",
    "perceptron(samples_or, False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 异或运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logical xor\n",
      "epoch 0 sample 0  [w1=1 w2=2 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 0 sample 1  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 0 sample 2  [w1=1 w2=2 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 0 sample 3  [w1=1 w2=2 b=0 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 1 sample 0  [w1=0 w2=1 b=-1 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 1  [w1=0 w2=1 b=-1 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 1 sample 2  [w1=1 w2=1 b=0 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 1 sample 3  [w1=1 w2=1 b=0 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 2 sample 0  [w1=0 w2=0 b=-1 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 2 sample 1  [w1=0 w2=0 b=-1 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 2 sample 2  [w1=1 w2=0 b=0 y=0 delta_w1=0 delta_w2=1 delta_b=1]\n",
      "epoch 2 sample 3  [w1=1 w2=1 b=1 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 3 sample 0  [w1=0 w2=0 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 1  [w1=0 w2=0 b=0 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 3 sample 2  [w1=1 w2=0 b=1 y=1 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 3 sample 3  [w1=1 w2=0 b=1 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 4 sample 0  [w1=0 w2=-1 b=0 y=0 delta_w1=0 delta_w2=0 delta_b=0]\n",
      "epoch 4 sample 1  [w1=0 w2=-1 b=0 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 4 sample 2  [w1=1 w2=-1 b=1 y=0 delta_w1=0 delta_w2=1 delta_b=1]\n",
      "epoch 4 sample 3  [w1=1 w2=0 b=2 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 5 sample 0  [w1=0 w2=-1 b=1 y=1 delta_w1=0 delta_w2=0 delta_b=-1]\n",
      "epoch 5 sample 1  [w1=0 w2=-1 b=0 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 5 sample 2  [w1=1 w2=-1 b=1 y=0 delta_w1=0 delta_w2=1 delta_b=1]\n",
      "epoch 5 sample 3  [w1=1 w2=0 b=2 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 6 sample 0  [w1=0 w2=-1 b=1 y=1 delta_w1=0 delta_w2=0 delta_b=-1]\n",
      "epoch 6 sample 1  [w1=0 w2=-1 b=0 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 6 sample 2  [w1=1 w2=-1 b=1 y=0 delta_w1=0 delta_w2=1 delta_b=1]\n",
      "epoch 6 sample 3  [w1=1 w2=0 b=2 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 7 sample 0  [w1=0 w2=-1 b=1 y=1 delta_w1=0 delta_w2=0 delta_b=-1]\n",
      "epoch 7 sample 1  [w1=0 w2=-1 b=0 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 7 sample 2  [w1=1 w2=-1 b=1 y=0 delta_w1=0 delta_w2=1 delta_b=1]\n",
      "epoch 7 sample 3  [w1=1 w2=0 b=2 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 8 sample 0  [w1=0 w2=-1 b=1 y=1 delta_w1=0 delta_w2=0 delta_b=-1]\n",
      "epoch 8 sample 1  [w1=0 w2=-1 b=0 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 8 sample 2  [w1=1 w2=-1 b=1 y=0 delta_w1=0 delta_w2=1 delta_b=1]\n",
      "epoch 8 sample 3  [w1=1 w2=0 b=2 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "epoch 9 sample 0  [w1=0 w2=-1 b=1 y=1 delta_w1=0 delta_w2=0 delta_b=-1]\n",
      "epoch 9 sample 1  [w1=0 w2=-1 b=0 y=0 delta_w1=1 delta_w2=0 delta_b=1]\n",
      "epoch 9 sample 2  [w1=1 w2=-1 b=1 y=0 delta_w1=0 delta_w2=1 delta_b=1]\n",
      "epoch 9 sample 3  [w1=1 w2=0 b=2 y=1 delta_w1=-1 delta_w2=-1 delta_b=-1]\n",
      "Accuracy:  0.225\n"
     ]
    }
   ],
   "source": [
    "print('logical xor')\n",
    "#perceptron(samples_xor, True)\n",
    "perceptron(samples_xor, False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 异或问题"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAETCAYAAAD53IeuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAH2YSURBVHhe7d0HuG5FlSbg3TM97ditmAgCIpKTBEmSRAmCZAREgggoEiSIklRERARFAVFBCYIiSBYlCgICEiRKElAQJUgQMI72tNPTs2e/i7sOdX9vONxzzv3/c099z7OfnWtXrVr11apVYf9T26GpqKioqBhX+G+T9hUVFRUV4wiVvCsqKirGISp5V1RUVIxDVPKuqKioGIeo5F1RUVExDlHJu6KiomIcopJ3RUVFxThEJe+KioqKcYhK3hUVFRXjEJW8KyoqKsYhKnlXVFRUjENU8q6oqKgYh6jkXVFRUTEOUcm7oqKiYhyikndFRUXFOMR0yft//+//PenoBfzXf/1XYwlw2//9v/+3+X//7//FBv/n//yf2MPf//732P/nf/5n7P/617/GOyW8/+///u+Tzl4IG4Tzmc98ZrLn/+M//mPoPL+X+4qKioqJhumS98tf/vLYI2Gk+t/+239r/umf/im2f/7nf45z2//6X/+r+Zd/+Zd49ve//33zspe9LI7/x//4H81TTz3VvOIVr4h3nn/++SBi8P6//uu/BgkLO8lYOHffffdQRQH/83/+z9iXhO27FRUVFRMR0/2TDgJNwk4gcptX//t//+9BrEjVc6559tlnnw3Lep555olnf/aznzWzzz57s9BCCzV//OMfIxzvIWrW9ytf+cq4lnj1q1/dXHzxxc3qq68eYasEQFh5XFFRUTFRMV3TFTlDafGmxfxv//ZvQcDpImFR53Nnn312M8ccczT33ntv88Y3vrFZZZVVmt122y3cJ3fccUez5557Nj/96U8jfOEAskfOwFK/8847435eA98GlcR06p2KioqKWRbD9jukfxtY1ogzre90nyByz11yySXhBmEhI+hddtmlOe6445obbrghSHnllVduFl988bC4ET9CF7ZwvIPwuVoOPPDA+J5wk6izBVCJu6KiYiJjum4TJJy+bOgl0QSrm4vltttua9773vc2559/frPmmmsGQXsHabO+b7nllnj+17/+dbP22ms3v/zlL4f84+B7SPvkk0+OztK//e1vQ35x4bDEfSdbBBUVFRUTEcN2mwBLG7km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jwMo0Ao6kl5rrbXiGHm9613vauaYY47mpJNOal7/+tcH2SEKJGC22Y033thcdtllQRqIyDtJkq5dfPHFzWGHHdYccsghzQ9/+MOhX0ABgkOi3vEu0keyiBTZuFaS24xCRbDnnns2hx56aHPFFVc0p59+enPmmWc2d999d6w7gcCkZffdd481LLbffvuIi3iB+LLQ55lnnuZXv/rVkEVORom0xKU5KzGwjKiwLFKEuL/xjW80e++9dxDvMccc0yy66KJDf1dB3OKalp9z33X/W9/6VsQXwTtG0NbKOO644+Kficcff3xUeq77j+InPvGJqIhUwPLzPe95T7PlllvGzMBTTjklvvP+978/liqtqJgqOmWuGHA888wzk47atiPQdrbZZmtPPvnktiPcdokllmg7ItF6is29rskezzrfdddd47izRGPfVQBtRw5tZ222XaXQdmQez3VE0e61117xTGd5th2pxTE88cQTEeYqq6wSz3YE03aEN+nuyLHgggu2HZm19913X/vwww+3P/jBD9r11luv3XTTTSNeG220Ubvqqqu266+/ftuRZduRdNu1EuLdzgKOZ7zbkV/bEWE8c8ABB7SdVdx+//vfby+88MJ22223bddee+14R/rJo7OQ264SCFlccMEF7VFHHdWuvvrq7V133dV2lULce/Ob3xzvkHtH+nHcVXrtaqut1q6wwgrt5ptv3naVT4RFNl2F0HbEH3nSVURtR+Dt888/H+8lugomnr300ksj/8T3ueeei+ud9d7+7Gc/a88666x2xx13nPRGRcU/olre4wAWiNeUZ/ma/su9wfq1pgNLeoEFFog/YbOcWXLWeeA28Kz7LLn0A3IXsB5Z3KzEO+64I/y3LFBWH0vWd1iWCVakKcf+WCIcroD8xdRIwbWjRcH6/drXvhZx4XboSDxcIeLbkVwsIiReWhNaGVojFiW69tprmw022CDipwWh1fHRj3400sMa7ogzXBLe869C37JQ0YYbbhgWMLByu0ouXEzSusgii4Q7g9yE63my1NI444wzmssvv7z5+c9/Hta/cLie3v3ud8d5R/yxGBIr/POf/3wz//zzhwUtPmTtZ7ef+cxn4ru33XZb5JN7O+20UyyqxG8uz7Qk0ldfUTElVPIecGTzH4mlywMQGoLbYYcdmqWXXjpWVeNmsMKaZTD5vJH8Bz7wgXg+3QldhR17rgk+387qjV9GIWVNe0TChQD5jm9bUtNi90jb4j/pehgp5p577vAh8xeLuzggT4vmcyu89rWvjcWH/EjWL65UZCoWROn6mmuuGYQqrX6JZUU570mDSgYp+tuKH88iUWkRxjXXXNPMOeecQdDWxPD7q87SD4IWvj15I2ZhqdTEjby5V1SefN3kK3wuD30Rxx57bDzD382lpeIgW9/mhrHn3pHmZ599NtKpMnLuZwHSld9yXFExNVTyHnCkj5XVmcQLSEcnGaLyxxDnyy233FCHl2ueX3zxxYMI+K+RAjJiSSIe1mWGn0SN0MD3vANJIohUC8A7+d5oQFgIkxWK/FRCYB1m5IxUVSpLLbXUUKXBakXm8847b5Cjdx9//PHo4DOCBEkiZOllwfoG4iYLEM5TTz0VadM56DkVGRmlxUsGLHXvItdMszBY4n506z2dnO5pOSy00ELN1ltvHT5trSE+8Rwx451ddtklKg/f+djHPhYdo+KgFcXyF29hZn5UVEwNlbwHHNkpyAp0zBK3X3311ZsvfelLzfrrrx/EghROOOGEcC+wMrlAkBW3hPslWIQlOSAO1q5RF0gSOaW7JYHEVAb5fUCYIwWr9be//W107IGOu3PPPTdITGcl6xSx6+hDhO94xzuCeFVSXCTcItwT0nryySdHR6OlQqU7SdD7LHOtEcfSxfWhgxRxetceGTvO58XBJs05WoUMVC4s74MPPjiuaTG4vuyyy4bLZr/99msOPPDAaK0gapa1MMRbOEieq4drRJxUEplHrHryP+iggyIeFRVTQyXvAUe6TZJIkQzy/MIXvhAFn/uEpYdAWKEsPnvNdeTFLZG/fEq/NyQRIQqjIpDeqquuGmTlOaTnW4DIkCVLnIWZ1m8Z3tTgWd+BtHqdcysgXkMfkTICEyduBKM9WKb81EZ0cNN4DuGyZhGnSgrZ8jVzG4krH7Z3WMJaCeSU1rJWBn82OXrWqBl76fQ9cRAvcQBpRbSeJ0eVF7DmuWu0XLbYYouw0rmThCWtX//618OvLd5aAPzykGFoKfG9n3feeUHOvqOvgn8e+PCF5938O0xC/MTHljKdCJBW5WA4ac7nstzM0ugSWjHg6EgvRkhARxYxSuTUU0+N0QmJz33uc23XBI+RImAkg+w1iiHRkUvsOzKOfUcm7cYbb9zuvPPOcd4pfOw763vomXwHzjnnnHa++eaL914qcnSKb9jEvbMu287ib2+//fYYZWJ0ifgbaSGN4n/22WfHva6iaDuSi2tPPfVUhJXoCD+udy2OSVfa9tBDD20/+clPxrEw3/nOdw6dS5/RJ0aGdKTeXnfddXG9qwjargJo//SnP8W5MLsWzZDsxbsj+hhdIq73339/XBeft7/97RHPxRdfvL3mmmtiNMtHPvKRGO3TVaQRxmabbRaje0qZeqazzNulllpq0pUX89JIGc/mVsJ55tdERKbf1hkxk42OSig3szKq5T3g4MboFDUsSMfpe2Xpsby7gh7jvS+44IIYdcK6SwuXRcfaBOO/wT3WtZEcRlJwS5howl9slIfRDizCrlDEO2lxst4188XBt6HTn9hPC+IO4gLetbFwuUB0Noo7y95IDe4fFq947r///s16660XVrFRG3zf7vNVlzBGHLh6PMeq5dIxIkTY3EEs5pwgo6XhWRYui5zV73mWulEn5APk7Dl+dM+ItxYDN40x49IgLkbtsP65OsiT68eoH1a1d4ynZy1La1fpNueff360nLi9xGHdddcNWXrOM6x3eWnykTilm6oXKduJAjppAzIhWzLQyqI/WoiQLabss5llERReMfBg7aYFKNuMaWbdsTxYycZhd0Td3nbbbfGMsdJl9rJU8n37HXbYIe7bOuUPC9TxZZddFuOoHRtX7b1ER4phJQJrtrw3NYhjIi1aEGfxYI36Fuu7qzRi/Dq84Q1viHHnHdG1X/va19rDDz98MusUpN34bHH/2Mc+FmGy0G2sauPDjz766BhL7Rus8Y5cw6J99NFHY2y461dccUWMBd9mm20iXHGWto4g2n322Se+7zvSDP/+7//errPOOpEHKVf54zuun3jiiRGu8LWUSvi2MeFdxdKecMIJ7QMPPNDuvffe7fLLL98+8sgjkY9HHHFEe+yxx05640X4TuYhlMezKuRxgvwzzeT+l7/8JY6hnHeQMp/V5VPJe8BBeSlq6SJJYj3ssMOiCf+pT30q9sstt1w799xzB+mZrNJZhqHA6QKBJDwEN9tss7WddRLh2TqLs/31r38drgrvbrjhhvHOb3/723aDDTYYetZ7SHU4SMLThM2CmKTvOwiyszIjjtwiSLdMa2fltksuuWR77rnntv/8z/8c9xAlkr/nnnva973vfUGaCqx73CPSccghh4QcOos7iPK9731ve+21104K9YWCfffdd8dEnM6ajorjq1/96lDzW1id5R2uGJOTFlpoobieaSAbbpMkCPfJHtHfcccdMblHZSMepfxL+JZ4c7dwX0FZwSFx76YMyW24leasAnk9JXStwqgEubocg0q1REnusyLq2ibjBF2BjWb8WWedFUPkNNWNuTZ2WCedjsnHHnssxiRrunMZGLmgWS+Lbd7nBnGfS0TTnFugI6ShDjWjNAyZu/7662O0RI755nYwPI/rxNC3jjDDRaHpOi34riZuR4ZDnYDSorNTxx8XjWn9Nm4c7gguFu4hcTTixEgUrhBxMAGJu0L6uUPEwXoiGQ9uHdPofbMjvqHRKYYg6tg1qiZlaWQIGXmGS0ZnoviRhfe32267CEscyUpHpNEj3CpG+RjXbTgjtwoXB7m5ni4ik3+4QWxdJRPhgzhLGzcO+eislE+GRXIByAPuLnI2bt1z4gApT8h0TARIq7RnPtMnHdfpFky50GX3ekdYzYqo5D3gkD0UEmElASZ6Cy8/MQXOZ4zYQHCICdxHmq57Bknx9fL7IpNy1iQi96zwy+8iN9emR9qJLFQJYUmLuAujszyDmPiUVSQgfr2Fr4yDQmvMdAJh83kKM8PuLOIIX1xTTt5DvI6lw0gQQxDNbJRW74qr+2QuDNfL44Sx8io2o0q8Z3x3ifymiVQqDN/zXMpe3Hwr05/xzb00iau+BvtMeynP/MZEgDyQXrKxJVJevXqZuj4ro5L3OAIFRrjAqkwLLwkAKLgsLRW8l/TzPMMoicM3UukdJznYJ9GDbygwZbjTQpJXoiRgFQXyLdPh2+Jkn+/5pjiSAQs9LdeyckiU16XXO9KQhJfxyfNSRhkfSNlA+U0tG52UiTJ9JXFknmU4viNeSeQqqVL+7qXMe+G++JZynNUhzeRR5jFZy4PM01L2vXo2K6OSd0VFRcU4xMRoc1VUVFTMYqjkXVFRUTHu0DT/H5xwAK+mGYOVAAAAAElFTkSuQmCC"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 由上述结果得知, 用单一感知器仅能处理线性分类问题, 并不能解决XOR问题  \n",
    "感知机是一种线性分类模型，属于判别模型.  \n",
    "![image.png](attachment:image.png)  \n"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "而异或问题就像如下图所示:\n",
    "![image.png](attachment:image.png)\n",
    "两种类型的点,相互交织在一起, 对于这种情况无法找到一条直线将两类结果完整地分开。也就是说,单个感知机无法找到一个线性模型对异或问题进行有效地划分。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "异或真值表：\n",
    "\n",
    "| 编号 | $$a$$ | $$b$$ | $$d$$ |\n",
    "| :--: | :-----: | :-----: | :---: |\n",
    "|  1   |    0    |    0    |   0   |\n",
    "|  2   |    1    |    0    |   1   |\n",
    "|  3   |    0    |    1    |   1   |\n",
    "|  4   |    1    |    1    |   0   |"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "假设有数据集C  \n",
    "\n",
    "C = {(x1, y1),(x2, y2),(x3, y3),(x4, y4)}\n",
    "\n",
    "其中, ![image.png](attachment:image.png)  \n",
    "\n",
    "假设C是线性可分的，则存在超平面是线性可分的，则存在超平面  \n",
    "\n",
    "                                           S: w·x + b = 0  \n"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对C中的4个实例正确进行分类，则有\n",
    "![image.png](attachment:image.png)\n",
    "注意：这里的大于小于0与y的取值无关，与参考系有关，表示两个类比，所以也并不需要要求y的取值是正1和负1。"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFoAAAAVCAYAAADGpvm7AAAE00lEQVRYCe1ZWyi7fRz/bXs3iWYrjAsiyyErx+TG6UbEXDjsQkgRhd26UOSGWprJsSbK8YalkELEcrEVN07lGBdyjLVi//5v+b59n3qednievTav//56/7v5/b6nz/fw/M7jkT+/T1dALpdDdnY2USgUZGpqigiFQlJaWkouLy/J9PQ0eXt7433ayf8dYGNjA3Z2doCuQ15eHszNzTG0RqNh+rTOn9aLCgwODjoU0t/fH87Pzxne/Pw80/cC3jcmAABjY2M+CXxqagqenp7c+r6+vgaZTOZWxzeV89Brc3Ozz5K4v7+Huro6t/57e3uhoKCAVYfvYa4+U9fpdKBSqXzmXyaT8aqqqkhPTw9rITEws9lMcFP81r+MjAzOBH9lYpmZmZxxREREwMnJCaf8V8bplS8czb5am50D7urqAoPB4FLMl5cXEAgELnxn+9+azsnJgaurq98iCbPZDCUlJQ6x4EDAYx0hBPr6+uDo6MhBThV3aGgIIiMjKaX29nZKKTs7G/h8PpSVlVEGBwcHEB0dDcHBwbC4uOgK8sWfCf2yuVhbW4ORkRFoaGhwkE9MTLgUg82e5i0tLcHo6Ci0tLQwOHjCCAkJgf39fYZH60ulUhceLXPboiORSORgjGCnp6cMb3x83GejSiKRMHHQieBUHRgYoPh+fn6wt7fH6FRUVEB3dzdD0zZsLeIMDw9Tuuhnd3eXscP1eHNzk6Fpex6P58KjZVztXyhQKpW8oKAgmJ2dhfLycuq6KJFIyNjYGGNns9lIVFTUv14lKysr3QZhtVopTMSXyWREq9W6xby4uIDCwkJisViYWLCDO7xarebd3d2BXC4naWlpDM76+jrp6OggbW1tDjZshMlkIk1NTTyc7ikpKSQ9PZ3Byc3NJaGhoS5mcXFxxGQygUQiYXRdlLgYarUaqqurqSLhCDcajRAYGMgUbXp6mulzYXwFH6cu7uZc2K2trWD/cc/OzlCXU58Lp62tDYqLix3sJicnHWjaNiEhAW5ublhltA5ne3h4CEKhEB4fH6Gzs5MCwceSra0tWFhYgNvbW++AOT1+TIBTG2cbl3Z8fDzYX3P1er1Lwbhs7flJSUkupwmuk443tz9q6UCHCoWCh5uiXq8niYmJVAw1NTXUa1RycjIJDw//0DSxH132idD9H7Yf5OffP4lYLKaWDp1O5xZXKpXy7GcWjUO3JycnpKioiCbJysoKSU1NJcvLywQ3y/z8fLf4tOHBwQEpKCigSWppCA8PZ2j7jkAgsCc972u1WsBHEfpOj5shjnIc0Z6j/XcWeLzDtZoNETemh4cHSoaPOWKxmBqZqL+6ukrxj4+PqeWFzosNB2eNzWZjfODbBpsebpa42bLJ3PEcvjY+2tTX1+MmyPDxiGcwGBjaHdhXyfCFjM/nU5uWsw+c3q+vrxQ7ICCA+Pn5kb29PRITE0NaWlqouPF4mpWVRTQaDWlsbGTNBS8hRqORms0ikYjU1tay6vX390NYWBhRqVSscuf4vhWN67RSqfR4FDknOTMz82kMb58CvsWjEq7TsbGxeKT7VKHe39+da+8Rvb29jSczj2y+pbL9zc3TBPACY78Ge2r//PzscHP01P5b6VssFnD+R+OjCdgfAT9qY6+HV32r1er1jPoHMYE2QMVNZM0AAAAASUVORK5CYII="
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "假设\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对上式进行化简有\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于上述四个不等式之间相互矛盾，所以XOR（异或逻辑）是非线性的，得证。  \n",
    "\n",
    "感知机的学习策略是极小化误差分类点到超平面S的总距离，即经验风险最小化。对于线性不可分数据集，由于总是存在误分类点，算法将不能收敛。事实上，最后的迭代（随机梯度下降SGD）将发生震荡，证明过程可以见Novikoff定理。\n",
    "\n",
    "综上，单层感知机不能表示异或逻辑。而多层神经网络能够解决这一问题，深度学习进一步采用了包含隐藏层的神经网络，来解决线性不可分的问题。\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
